home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / a_utils / perl / prlbkxmp.lha / ch2 / letters < prev    next >
Text File  |  1991-01-07  |  1KB  |  55 lines

  1. #!/usr/bin/perl
  2.  
  3.     # First open my database.  Complain if unable.
  4.  
  5. open(STUFF, "stuff") || die "Can't open stuff: $!\n";
  6.  
  7.     # Open the clay tablet printer.
  8.  
  9. open(CTP, ">/dev/ctp") || die "Can't open /dev/ctp: $!\n";
  10.  
  11.     # Now load stuff into associative array.
  12.  
  13. while (<STUFF>) {
  14.     ($beastie,$remainder) = split(/:/, $_, 2);
  15.     $beastie =~ tr/A-Z/a-z/;
  16.     $stuff{$beastie} = $remainder;
  17. }
  18.  
  19. close STUFF;
  20.  
  21.    # Now loop forever, printing out letters on demand.
  22.  
  23. while (1) {
  24.  
  25.     # Find out what to do next.
  26.  
  27.     print "Letter for which beastie: ";
  28.     chop($beastie = <STDIN>);
  29.     last unless $beastie;
  30.  
  31.     # Get the information handy for selected beastie.
  32.  
  33.     ($noses, $hazard, $premium) = split(/:/, $stuff{$beastie});
  34.     $payment = $premium * $noses;
  35.  
  36.     # Now print out the letter.
  37.  
  38.     print CTP <<"EndOfLetter";
  39. Dear Shekelgrubbers:
  40.  
  41.     Please find enclosed $payment shekels in payment of the
  42. annual premium for insuring $noses of my $beastie against
  43. $hazard.
  44.  
  45.                 Sincerely,
  46.                    Job
  47.  
  48. Quote of the day:
  49.     "You can lead a camel to water, but you can't make
  50.      it stink (any worse than it already does)."
  51. EndOfLetter
  52.  
  53.     print CTP "\f";            # Eject the clay tablet.
  54. }
  55.